﻿using System;
using System.Collections.Generic;
using System.Text;

namespace PVID_UHF_CE_Application
{
    public class DynamicContent
    {
    }

    public class SpecificationMetaData
    {
        int _RMLength;
        int _UMLength;
        int _EPCLength;


        public int RMLength
        {
            get { return _RMLength; }
            set { _RMLength = value; }
        }

        public int UMLength
        {
            get { return _UMLength; }
            set { _UMLength = value; }
        }

        public int EPCLength
        {
            get { return _EPCLength; }
            set { _EPCLength = value; }
        }

    }

    public class ContentMetaData
    {
        public ContentMetaData(TagVariables tagVariables, MemoryLocations mLocations, int length, int startIndex)
        {
            _tVar = tagVariables;
            _mLocation = mLocations;
            _Length = length;
            _StartIndex = startIndex;
        }

        public ContentMetaData(TagVariables tagVariables, MemoryLocations mLocations, int length, int startIndex, int values, int valueLength, string FormatString)
        {
            _tVar = tagVariables;
            _mLocation = mLocations;
            _Length = length;
            _StartIndex = startIndex;

            _Values = values;
            _ValueLength = valueLength;
            _FormatString = FormatString;
        }
        TagVariables _tVar;
        MemoryLocations _mLocation;
        int _memoryIndex;
        int _Length;
        int _StartIndex;
        
        //For IV Points
        int _Values;
        int _ValueLength;
        string _FormatString;

        internal TagVariables TVar
        {
            get { return _tVar; }
            set { _tVar = value; }
        }

        internal MemoryLocations MLocation
        {
            get { return _mLocation; }
            set { _mLocation = value; }
        }

        internal int MemoryIndex
        {
            get { return _memoryIndex; }
            set { _memoryIndex = value; }
        }

        internal int Length
        {
            get { return _Length; }
            set { _Length = value; }
        }

        internal int StartIndex
        {
            get { return _StartIndex; }
            set { _StartIndex = value; }
        }

        internal int Values
        {
            get { return _Values; }
            set { _Values = value; }
        }

        internal int ValueLength
        {
            get { return _ValueLength; }
            set { _ValueLength = value; }
        }

        internal string FormatString
        {
            get { return _FormatString; }
            set { _FormatString = value; }
        }
    }

    public enum TagVariables
    {
        None = -1,
        PVName = 0,
        PVDate,
        PVCountry,
        PVUSN,
        ModelNo,
        PeakWatt,
        Im,
        Vm,
        FF,
        SCName,
        SCDate,
        SCCountry,
        Isc,
        Voc,
        IECDate,
        IECName,
        iPoints,
        vPoints
    }

    public enum MemoryLocations
    {
        None = -1,
        RM = 0,
        UM,
        EPC,
    }
}
